#ifndef _GSUPPLYLINKTRANSPORTER_H_
#define _GSUPPLYLINKTRANSPORTER_H_

using namespace std ;

#include <vector>
#include <string>
#include <assert.h>
#include <iostream>

using namespace std ;

/**
 * @author me
 *
 */
class GSupplyLinkTransporter {

    private:
        /**
         * Chargement max du transporteur
         */
        double capacity ;

        /**
         * Cost for delivering one batch of a given size
         * batchDeliveryTimes[i] = Cost to load, transport and unload one batch
         * of "i" parts.
         */
        double deliveryCost;

        /**
         * Time for delivering one batch of a given size
         * batchDeliveryTimes[i] = times to load, transport and unload one batch
         * of "i" parts.
         */
        double deliveryTime;

    public:
        /**
         *
         */
        GSupplyLinkTransporter():capacity(0) {}
        GSupplyLinkTransporter(double c, double dc,double dt):capacity(c),deliveryCost(dc),deliveryTime(dt){}

        // Inlines
        inline const double getCapacity() const {return capacity ;}
        inline const double getDeliveryCost() const {return deliveryCost ;}
        inline const double getDeliveryTime() const {return deliveryTime ;}

        inline void setCapacity(double v)  { this->capacity=v ;}
        inline void setDeliveryCost(double v)  { this->deliveryCost=v ;}
        inline void setDeliveryTime(double v)  { this->deliveryTime=v ;}

        void printMe() {
            std::cout << "GSupplyLinkTransporter=[capacity=" << this->capacity << "," ;
            std::cout << "deliveryCost=" << this->deliveryCost << ",";
            std::cout << "deliveryTime=" << this->deliveryTime << "]";
        }

} ;

#endif
